﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using QLTV.Public;
using QLTV.BLL;

namespace QLTV.GUI.UserControl
{
    public partial class ucSach : DevExpress.XtraEditors.XtraUserControl
    {
        SachBLL sBLL = new SachBLL();
        SachDTO sDTO = new SachDTO();
        public ucSach()
        {
            InitializeComponent();
        }

        private void gridSach_Load(object sender, EventArgs e)
        {
            DataTable tb = sBLL.Sach_Load();
            
            gridSach.DataSource = tb;
        }

        private void grid_Sach_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            if (e.Column == STT)
            {
                e.DisplayText = Convert.ToString(e.RowHandle + 1);
            }
        }

        private void btnThemSach_Click(object sender, EventArgs e)
        {
            Forms.frmSach frmS = new Forms.frmSach();

            frmS.myEvent += frm_myEvent;

            frmS.ShowDialog();
        }
        private void frm_myEvent(object sender, bool check)
        {
            bool kt = check;
            if (kt == true)
                gridSach.DataSource = sBLL.Sach_Load();
        }

        private void btnChinhSua_Click(object sender, EventArgs e)
        {

            try
            {
                string _mas = grid_Sach.GetRowCellValue(grid_Sach.FocusedRowHandle, grid_Sach.Columns["MaSach"]).ToString();
                
                // Truyen cai MaTL vua lay dx...qua ben form NhapTheLoai.
                Forms.frmSach frmS = new Forms.frmSach(_mas);
                frmS.myEvent += frm_myEvent;
                txtTim.Text = "";
                frmS.ShowDialog();
            }
            catch
            {
                XtraMessageBox.Show("Bạn phải chọn dòng chứa dữ liệu", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void txtTim_EditValueChanged(object sender, EventArgs e)
        {
            if (txtTim.Text.ToString().Trim().Length == 0)
            {
                gridSach.DataSource = sBLL.Sach_Load();
            }
            else
            {
                sDTO.MaDS = txtTim.Text;
                gridSach.DataSource = sBLL.TimTheoTen(sDTO);
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            try
            {
                string _MaS = grid_Sach.GetRowCellValue(grid_Sach.FocusedRowHandle, grid_Sach.Columns["MaSach"]).ToString();
                if (XtraMessageBox.Show("Bạn chắc chắn có muốn xóa Sách này ?", "Hỏi đáp", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    sDTO.MaSach = _MaS;
                    int kq = sBLL.Xoa(sDTO);
                    if (kq > 0)
                    {
                        XtraMessageBox.Show("Xóa thành công!", "Dữ liệu đã được cập nhật lại trong CSDL", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        txtTim.Text = "";
                        gridSach.DataSource = sBLL.Sach_Load();
                    }
                    else
                    {
                        XtraMessageBox.Show("Xóa không được! Vui lòng kiểm tra lại", "Xảy ra lôi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            catch
            {
                XtraMessageBox.Show("Bạn phải chọn dòng chứa dữ liệu", Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        
    }
}
